The MIPS ABI is actually comprised of a number of documents.
To be strictly accurate, there are two different forms of ABI compliance. All the ABI-conforming systems are ABI Execution Platforms, the Reference Platform is the "tie-breaker" for how a program should work. There are also ABI Generation Platforms, which are used to build ABI programs; the Reference Platform is again the "tie-breaker". The ABI generation environment need not necessarily be hosted on top of an ABI execution environment. As of the current version of this document, only the Reference Platform is an approved Generation Platform, although there are plans to certify additional Generation Platforms in the near future.
Given the current situation, it is thus a requirement that a software developer have a Reference Platform on hand, or visit or remotely access a porting center, in order to perform and test an ABI port.
A cornerstone of this strategy is the availability of test technology to certify ABI compliance of a binary. At the moment, facilities for such
The Reference Platform conforming to the 1.0 Conformance Guide edition was MIPS Computer Systems' RISC/os 5.01 with ANSI C 3.11.
The Reference Platform for the (future) 1.2 Conformance Guide will be a future version of IRIX.
The ABI maintains backwards, but not forwards compatibility, so programs developed on the earlier RP will execute on the later ones, but will not be able to take advantage of new features.
In general, the latest RP is the best one to develop on, as it is likely to have the strongest level of support available.
These are the references for the documents which define the standard:
System V Interface Definition, Third Edition. AT&T UNIX Software Operation, Four Volumes, Select Codes 320-136, 320-137, 320-138, 320-139. A fifth volume contains updates to the interfaces described in the first four volumes.
System V Application Binary Interface, Prentice Hall, ISBN 0-13-877598-2. This is the defining document for the Generic ABI (gABI). Note: A revised (2nd) edition and a 3rd edition are also on the market, but may document interfaces which are not covered by the MIPS ABI, and should not be used verbatim in developing MIPS ABI applications. Single copies of the gABI may be obtained from Prentice-Hall by calling 201-767-5937.
System V Application Binary Interface, MIPS Processor Supplement, Prentice-Hall, ISBN 0-13-880170-3. This is the defining document for the psABI (Processor-Specific ABI) for the MIPS Processor family. A Revised (3rd) Edition will soon be on the market, but may document interfaces which are not covered by the MIPS ABI, and should not be used verbatim in developing MIPS ABI applications. Single copies of the psABI may be obtained from Prentice-Hall by calling 201-767-5937.
MIPS Processor ABI Conformance Guide, Version 1.1, MIPS ABI Group The Conformance Guide is currently being distributed at revision level 1.1.2. The Conformance Guide editions are numbered in the form major.minor; a trailing .rev, if present indicates only minor editing changes, no new functionality. The first approved version was 1.0 (revision 1.0.1 was distributed). See Which Reference Platform version should I use? for a discussion of how the Reference Platform relates to this. Approval of version 1.2 (referred to occasionally in this text) is forthcoming, but formal release will be delayed until a matching Reference Platform is available. The functionality approved for 1.2 is described in the 1.1.2 "Future Directions" section.
Additional documents are referred to within the above standards:
MIPS RISC Architecture, Kane and Heinrich, Prentice Hall, ISBN 0-13-590472-2.
X Window System: the Complete Reference to Xlib, X Protocol, ICCCM, XLFD, Digital Press, ISBN 1-55558-088-2.
OSF/Motif Programmer's Reference, Revision 1.2, Prentice Hall, ISBN 0-13-643115-1.
NOTE: the IEEE has approved (12/93) POSIX 1295, which describes the interfaces of Motif. The specification is closely derived from the preceding reference, but as an approved standard, may replace the above in a future Conformance Guide.
The SGI Developer Toolbox also includes a note in PostScript format on porting to the ABI, and some sample programs illustrating porting techniques.
Specific features can usually be tested for, but compliance levels cannot be inferred from this, as the particular feature may have been introduced on a given platform before full compliance for the version of the spec in which the feature first appeared.
With the 1.2 Conformance Guide, the ABI version will be obtainable
by examining the file /etc/mipsabiversion
. If
this file is not present, the only assumption that should
be made is "pre-1.2".
v1.6 L/M 6/15/94